package cn.iocoder.yudao.module.wms.enums;

import cn.iocoder.yudao.framework.common.exception.ErrorCode;

public interface ErrorCodeConstants {

    /***
     * 基础设置模块
     */
    // ========= 业务员档案错误代码 ==========
    ErrorCode PERSON_NOT_EXISTS = new ErrorCode(10001, "业务员信息不存在");
    ErrorCode PERSON_CODE_EXISTS = new ErrorCode(10001_001, "业务员编码已存在");
    // ========= 客户档案错误代码 ==========
    ErrorCode CUSTOMER_NOT_EXISTS = new ErrorCode(10002, "客户信息不存在");
    ErrorCode CUSTOMER_CODE_EXISTS = new ErrorCode(10002_001, "客户编码已存在");
    ErrorCode CUSTOMER_NAME_EXISTS = new ErrorCode(10002_002, "客户名称已存在");
    // ========= 供应商档案错误代码 ==========
    ErrorCode VENDOR_NOT_EXISTS = new ErrorCode(10003, "供应商信息不存在");
    ErrorCode VENDOR_CODE_EXISTS = new ErrorCode(10003_001, "供应商编码已存在");
    ErrorCode VENDOR_NAME_EXISTS = new ErrorCode(10003_002, "供应商名称已存在");
    // ========= 存货档案错误代码 ==========
    ErrorCode INVENTORY_NOT_EXISTS = new ErrorCode(10004, "存货信息不存在");
    ErrorCode INVENTORY_CODE_EXISTS = new ErrorCode(10004_001, "存货编码已存在");
    ErrorCode INVENTORY_NAME_EXISTS = new ErrorCode(10004_002, "存货名称已存在");
    // ========= 客户分类档案错误代码 ==========
    ErrorCode CUSTOMER_CLASSIFY_NOT_EXISTS = new ErrorCode(10005, "客户分类不存在");
    ErrorCode CUSTOMER_CLASSIFY_CODE_EXISTS = new ErrorCode(10005_001, "客户分类编码已存在");
    ErrorCode CUSTOMER_CLASSIFY_NAME_EXISTS = new ErrorCode(10005_002, "客户分类名称已存在");
    ErrorCode CUSTOMER_CLASSIFY_EXITS_CHILDREN = new ErrorCode(10005_003, "存在子分类，无法删除");
    ErrorCode CUSTOMER_CLASSIFY_EXITS_CUSTOMER = new ErrorCode(10005_004, "分类下存在客户信息，无法删除");
    // ========= 供应商分类档案错误代码 ==========
    ErrorCode VENDOR_CLASSIFY_NOT_EXISTS = new ErrorCode(10006, "供应商分类不存在");
    ErrorCode VENDOR_CLASSIFY_CODE_EXISTS = new ErrorCode(10006_001, "供应商分类编码已存在");
    ErrorCode VENDOR_CLASSIFY_NAME_EXISTS = new ErrorCode(10006_002, "供应商分类名称已存在");
    ErrorCode VENDOR_CLASSIFY_EXITS_CHILDREN = new ErrorCode(10006_003, "存在子分类，无法删除");
    ErrorCode VENDOR_CLASSIFY_EXITS_VENDOR = new ErrorCode(10006_004, "分类下存在供应商信息，无法删除");
    // ========= 存货分类档案错误代码 ==========
    ErrorCode INVENTORY_CLASSIFY_NOT_EXISTS = new ErrorCode(10006, "存货分类不存在");
    ErrorCode INVENTORY_CLASSIFY_CODE_EXISTS = new ErrorCode(10006_001, "存货分类编码已存在");
    ErrorCode INVENTORY_CLASSIFY_NAME_EXISTS = new ErrorCode(10006_002, "存货分类名称已存在");
    ErrorCode INVENTORY_CLASSIFY_EXITS_CHILDREN = new ErrorCode(10006_003, "存在子分类，无法删除");
    ErrorCode INVENTORY_CLASSIFY_EXITS_INVENTORY = new ErrorCode(10006_004, "分类下存在存货信息，无法删除");
    // ========= BOM清单错误代码 ==========
    ErrorCode BOM_NOT_EXISTS = new ErrorCode(10007, "BOM信息不存在");
    ErrorCode BOMS_NOT_EXISTS = new ErrorCode(10007_001, "BOM明细不存在");
    // ========= 计量单位错误代码 ==========
    ErrorCode UNIT_NOT_EXISTS = new ErrorCode(10008, "计量单位信息不存在");
    ErrorCode UNIT_CODE_EXISTS = new ErrorCode(10008_001, "计量单位编码已存在");
    ErrorCode UNIT_NAME_EXISTS = new ErrorCode(10008_002, "计量单位名称已存在");
    // ========= 仓库档案错误代码 ==========
    ErrorCode WAREHOUSE_NOT_EXISTS = new ErrorCode(10009, "仓库信息不存在");
    ErrorCode WAREHOUSE_CODE_EXISTS = new ErrorCode(10009_001, "仓库编码已存在");
    ErrorCode WAREHOUSE_NAME_EXISTS = new ErrorCode(10009_002, "仓库名称已存在");
    // ========= 货位档案编号 ==========
    ErrorCode LOCATION_NOT_EXISTS = new ErrorCode(10010, "货位信息不存在");
    ErrorCode LOCATION_CODE_EXISTS = new ErrorCode(10010_001, "货位编码已存在");
    ErrorCode LOCATION_NAME_EXISTS = new ErrorCode(10010_002, "货位名称已存在");
    // ========= 批号设置错误代码 ==========
    ErrorCode BATCH_NOT_EXISTS = new ErrorCode(10011, "批号规则不存在");
    ErrorCode BATCH_SERIAL_EXISTS = new ErrorCode(10011_001, "生成批号失败，请重新提交");

    /**
     * 销售管理模块
     */
    // ========== 销售订单错误代码 ==========
    ErrorCode SALE_ORDER_NOT_EXISTS = new ErrorCode(20001, "销售订单信息不存在");
    ErrorCode SALE_ORDER_SERIALNUMBER_EXISTS = new ErrorCode(20001_001, "生成销售订单流水号失败，请重新提交");
    // ========== 销售出库单错误代码 ==========
    ErrorCode RDRECORD32_NOT_EXISTS = new ErrorCode(20002, "销售出库单信息不存在");
    ErrorCode RDRECORD32_SERIALNUMBER_EXISTS = new ErrorCode(20001_001, "生成销售出库单流水号失败，请重新提交");
    ErrorCode RDRECORD32_NUMBER_OUT = new ErrorCode(110043, "销售出库数量超过销售订单数量");

    /**
     * 采购管理模块
     */
    // ========== 采购订单错误代码 ==========
    ErrorCode PURCHASE_ORDER_NOT_EXISTS = new ErrorCode(30001, "采购订单信息不存在");
    ErrorCode PURCHASE_ORDER_SERIALNUMBER_EXISTS = new ErrorCode(30001_001, "生成采购订单流水号失败，请重新提交");
    // ========== 采购入库单错误代码 ==========
    ErrorCode RDRECORD01_NOT_EXISTS = new ErrorCode(30002, "采购入库单信息不存在");
    ErrorCode RDRECORD01_SERIALNUMBER_EXISTS = new ErrorCode(30002_001, "生成采购入库单流水号失败，请重新提交");
    ErrorCode RDRECORD01_NUMBER_OUT = new ErrorCode(110042, "采购入库数量超过可使用数量");

    /**
     * 生产管理模块
     */
    // ========== 生产任务单错误代码 ==========

    ErrorCode PRODUCTION_ORDER_NOT_EXISTS = new ErrorCode(40001, "采购订单信息不存在");
    ErrorCode PRODUCTION_ORDER_SERIALNUMBER_EXISTS = new ErrorCode(40001_001, "生成采购订单流水号失败，请重新提交");
    // ========== 生产入库单错误代码 ==========
    ErrorCode RDRECORD10_NOT_EXISTS = new ErrorCode(40002, "生产入库单信息不存在");
    ErrorCode RDRECORD10_SERIALNUMBER_EXISTS = new ErrorCode(40002_001, "生成生产入库单流水号失败，请重新提交");
    ErrorCode STOCK_NOT_EXISTS = new ErrorCode(113000, "存货管理不存在");
    ErrorCode STOCK_NOT_FIND = new ErrorCode(113100, "找不到对应的库存");
    ErrorCode STOCK_NOT_OUT = new ErrorCode(113100, "库存不足");

    /**
     * 库存管理模块
     */
    // ========== 盘点单错误代码 ==========
    ErrorCode CHECKVOUCH_NOT_EXISTS = new ErrorCode(50001, "盘点单信息不存在");
    ErrorCode CHECKVOUCH_SERIALNUMBER_EXISTS = new ErrorCode(50001_001, "生成盘点单流水号失败，请重新提交");
    // ========== 调拨单错误代码 ==========
    ErrorCode RDRECORD07_NOT_EXISTS = new ErrorCode(50002, "调拨单信息不存在");
    ErrorCode RDRECORDS07_SERIALNUMBER_EXISTS = new ErrorCode(50002_001, "生成调拨单流水号失败，请重新提交");
    // ========== 其他入库单错误代码 ==========
    ErrorCode RDRECORD08_NOT_EXISTS = new ErrorCode(50003, "其他入库单信息不存在");
    ErrorCode RDRECORDS08_SERIALNUMBER_EXISTS = new ErrorCode(50003_001, "生成其他入库单流水号失败，请重新提交");
    // ========== 其他出库单错误代码 ==========
    ErrorCode RDRECORD09_NOT_EXISTS = new ErrorCode(50004, "其他出库单信息不存在");
    ErrorCode RDRECORDS09_SERIALNUMBER_EXISTS = new ErrorCode(50004_001, "生成其他出库单流水号失败，请重新提交");
    // ========== 材料出库单错误代码 ==========
    ErrorCode RDRECORD11_NOT_EXISTS = new ErrorCode(50005, "材料出库单信息不存在");
    ErrorCode RDRECORDS11_SERIALNUMBER_EXISTS = new ErrorCode(50005_001, "生成材料出库单流水号失败，请重新提交");

}

